home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Chess / Fly_Chess.jar / StringTokenizer.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-08-23  |  2.1 KB  |  133 lines

  1. import java.util.Enumeration;
  2. import java.util.NoSuchElementException;
  3.  
  4. public class StringTokenizer implements Enumeration {
  5.    private int currentPosition;
  6.    private int newPosition;
  7.    private int maxPosition;
  8.    private String str;
  9.    private String delimiters;
  10.    private boolean retDelims;
  11.    private boolean delimsChanged;
  12.    private char maxDelimChar;
  13.  
  14.    public StringTokenizer(String var1) {
  15.       this(var1, " \t\n\r\f", false);
  16.    }
  17.  
  18.    public StringTokenizer(String var1, String var2) {
  19.       this(var1, var2, false);
  20.    }
  21.  
  22.    public StringTokenizer(String var1, String var2, boolean var3) {
  23.       this.currentPosition = 0;
  24.       this.newPosition = -1;
  25.       this.delimsChanged = false;
  26.       this.str = var1;
  27.       this.maxPosition = var1.length();
  28.       this.delimiters = var2;
  29.       this.retDelims = var3;
  30.       this.setMaxDelimChar();
  31.    }
  32.  
  33.    public int countTokens() {
  34.       int var1 = 0;
  35.  
  36.       for(int var2 = this.currentPosition; var2 < this.maxPosition; ++var1) {
  37.          var2 = this.skipDelimiters(var2);
  38.          if (var2 >= this.maxPosition) {
  39.             break;
  40.          }
  41.  
  42.          var2 = this.scanToken(var2);
  43.       }
  44.  
  45.       return var1;
  46.    }
  47.  
  48.    public boolean hasMoreElements() {
  49.       return this.hasMoreTokens();
  50.    }
  51.  
  52.    public boolean hasMoreTokens() {
  53.       this.newPosition = this.skipDelimiters(this.currentPosition);
  54.       return this.newPosition < this.maxPosition;
  55.    }
  56.  
  57.    public Object nextElement() {
  58.       return this.nextToken();
  59.    }
  60.  
  61.    public String nextToken() {
  62.       this.currentPosition = this.newPosition >= 0 && !this.delimsChanged ? this.newPosition : this.skipDelimiters(this.currentPosition);
  63.       this.delimsChanged = false;
  64.       this.newPosition = -1;
  65.       if (this.currentPosition >= this.maxPosition) {
  66.          throw new NoSuchElementException();
  67.       } else {
  68.          int var1 = this.currentPosition;
  69.          this.currentPosition = this.scanToken(this.currentPosition);
  70.          return this.str.substring(var1, this.currentPosition);
  71.       }
  72.    }
  73.  
  74.    public String nextToken(String var1) {
  75.       this.delimiters = var1;
  76.       this.delimsChanged = true;
  77.       this.setMaxDelimChar();
  78.       return this.nextToken();
  79.    }
  80.  
  81.    private int scanToken(int var1) {
  82.       int var2;
  83.       for(var2 = var1; var2 < this.maxPosition; ++var2) {
  84.          char var3 = this.str.charAt(var2);
  85.          if (var3 <= this.maxDelimChar && this.delimiters.indexOf(var3) >= 0) {
  86.             break;
  87.          }
  88.       }
  89.  
  90.       if (this.retDelims && var1 == var2) {
  91.          char var4 = this.str.charAt(var2);
  92.          if (var4 <= this.maxDelimChar && this.delimiters.indexOf(var4) >= 0) {
  93.             ++var2;
  94.          }
  95.       }
  96.  
  97.       return var2;
  98.    }
  99.  
  100.    private void setMaxDelimChar() {
  101.       if (this.delimiters == null) {
  102.          this.maxDelimChar = 0;
  103.       } else {
  104.          char var1 = 0;
  105.  
  106.          for(int var2 = 0; var2 < this.delimiters.length(); ++var2) {
  107.             char var3 = this.delimiters.charAt(var2);
  108.             if (var1 < var3) {
  109.                var1 = var3;
  110.             }
  111.          }
  112.  
  113.          this.maxDelimChar = var1;
  114.       }
  115.    }
  116.  
  117.    private int skipDelimiters(int var1) {
  118.       if (this.delimiters == null) {
  119.          throw new NullPointerException();
  120.       } else {
  121.          int var2;
  122.          for(var2 = var1; !this.retDelims && var2 < this.maxPosition; ++var2) {
  123.             char var3 = this.str.charAt(var2);
  124.             if (var3 > this.maxDelimChar || this.delimiters.indexOf(var3) < 0) {
  125.                break;
  126.             }
  127.          }
  128.  
  129.          return var2;
  130.       }
  131.    }
  132. }
  133.